Главная страница Visual 2000 · Общий список статей
Платформа "1С:Предприятие 8.1" уже на подходеАндрей Колесов
© Андрей Колесов, 2006
Выпустив летом 2003 года платформу "1С:Предприятие 8.0"...
Выпустив летом 2003 года платформу "1С:Предприятие 8.0", фирма "1С" начала новый этап развитие своего экономического ПО, основной вектор которого можно кратко охарактеризовать так – продвижение в сторону сегмента средних и крупных заказчиков на основе более масштабируемых и функциональных прикладных решений. Сейчас компания готовится сделать следующий шаг: в июле она объявила о выпуске бета-версии нового варианта платформы "1С:Предприятие 8.1" (1С:8.1), которая в окончательном виде должна появиться на рынке уже в конце нынешней осени.
Хотя номер версии меняется всего на 0.1, и, как уверяют разработчики "1С", данная модификация платформы обеспечит практически полную совместимость с прикладными продуктами 8.0, на самом деле речь идет о весьма серьезной внутренней архитектурной и технологической реконструкции системы с целью повышения масштабирования прикладных решений в условиях создания современных корпоративных систем управления предприятиями. В официальном комментарии “1С” по этому поводу говорится: “Часть изменений ориентирована не столько на функциональность 8.1, сколько являются фундаментом для будущего развития. Кроме того, многие архитектурные изменения позволят нам опробовать подходы к построению системы, которые мы сможем более активно применять в будущем”.
Судите сами: в системе "1С:Предприятие 8.1" появилась поддержка серверных кластеров, “родной” режим работы сервера в среде Linux, возможность использования СУБД PostgreSQL, расширенное применение технологий XML и Open Source. А в недалеком будущем можно ожидать появление декларативная модель для разработки пользовательских интерфейсов, создание тонкого клиента и многое другое.
Однако прежде, чем рассказать о новшествах 8.1, полезно дать общую картину развития всего комплекса ПО "1С:Предприятие".
Хотя “1С:Предприятие 8.0” имеет уде трехлетний стаж пребывания на рынке, тем не менее до сих пор она часто сопровождается определением “новая”. Тому есть несколько объективных причин. Прежде всего, отметим, что цикл обновления базовых технологий существенно длительнее, чем прикладных решений (версия 7.0 была впервые представлена в 1996 г., а за последующие семь лет были сделаны еще два ее модернизированных варианта — 7.5 и 7.7).
Кроме того, отличительной особенностью "1C" (по сравнению с многими другими поставщиками софта, не только экономического) является то, что с выпуском новых версий продуктов, предыдущие варианты также продолжают продавать и поддерживаться. Так с появлением версии 8.0 прикладные решения на базе 7.7, по-прежнему, поставляются и покупаются (по итогам 2005 г. соотношение продаж 7.7 / 8.0 составило 60% / 40%, хотя доля 7.7 со временем заметно сокращается).
Но самое главное, “восьмерка” не стоит на месте и постоянно развивается. С лета 2003-го выпущено уже 15 релизов, и некоторые из них были вполне достойны того, чтобы изменить номер версии хотя бы на одну десятую. Правда, эти обновления были в основном связаны с расширением прикладного функционала платформы (в том числе с появлением качественно новых возможностей, таких, например, как управление бизнес-процессами, поддержка распределенных баз данных, Web-решения). Теперь же подходит момент для модернизации базовых технологий.
Чтобы оценить серьезность предполагаемых новшеств, полезно вспомнить некоторые “исторические” концепции, на которых до сих пор стоилась система “1С”. Это использование исключительно платформы Microsoft, ориентация на архитектуру “толстого” клиента (даже в клиент-серверном варианте) и очень сильная тяга к применению собственных компонентных технологических решений. Похоже, что в 8.1. разработчики из “1С” решились на преодоление этих рамок.
Обратим внимание еще раз: модернизация в новой версии включает в основном изменения на уровне ядра платформы. Хотя тут речь пойдет о важных качественных моментах, эти новшества потребуют минимальной коррекции (или же она вообще не потребуется) существующих прикладных решений.
Существующий сейчас клиент-серверный вариант 8.0 позволяет использовать только один сервер “1С:Предприятия”, способный работать с несколькими информационными базами (ИБ). В 1С:8.1 будет реализована возможность создания кластера серверов (рис. 1), управление которым производится через центральное серверное приложение (менеджер кластера). При этом с одной ИБ смогут работать сразу несколько серверов “1С:8.1”. Простейший кластер серверов может располагаться на одном компьютере и содержать один рабочий процесс (рис. 2). Для администрирования кластером реализована утилита в виде встраиваемого модуля для Microsoft Management Console (рис. 3).
Рис. 1. Структура кластера серверов на базе “1С:Предприятия 8.1”
Рис. 2. Простейший кластер сервером может располагаться на одном компьютере
Рис. 3. Утилита администрирования кластером реализована на базе Microsoft Management Console
Понятно, что кластерная архитектура обеспечивает более высокую надежность, масштабируемость и эффективность использования аппаратных ресурсов. Кластер серверов может предоставлять один или несколько рабочих процессов, для обслуживания клиентских соединений. Рабочие процессы кластера могут функционировать на одном или нескольких компьютерах (табл. 1).
По предварительным оценкам "1С" суммарная пропускная способность в кластере при одновременной работе нескольких пользователей возрастает на 25-60 процентов, если использовать даже на том же сервере несколько рабочих процессов. Но на некоторых интенсивных тестах параллельности общая пропускная способность системы возрастает в разы. Но разработчики при этом предупреждают, что нельзя ожидать, что все станет быстрее во всех случаях.
Возможность создания кластера (а также поддержка Linux) появилась как результат переработанной архитектуры сервера “1С:Предприятия”, в том числе за счет перехода от использования COM+ к протоколу TCP/IP для организации взаимодействия между отдельными серверными процессами, а также между серверной и клиентской частями системы.
Таблица 1. Сравнительные характеристики сервера 1С:8.0 и кластера серверов 1С:8.1
------------------------------------------------------------------------------------------------------------------ Характеристика Сервер "1С:Предприятия 8.0" Кластер серверов "1С:Предприятия 8.1." ------------------------------------------------------------------------------------------------------------------ Количество компьютеров Один Один или несколько, объединенных в кластер Количество серверных процессов Один Одни или несколько на одном компьютере Распределение нагрузки Отсутствует Распределение нагрузки между различными процессами на основе анализа долгосрочной статистики загруженности процессов Операционные системы Windows Windows и Linux Механизм взаимодействия Для взаимодействия с клиентским Взаимодействие с клиентским приложением, приложением и сервером баз сервером баз данных и процессов кластера данных используется механизм COM+ между собой осуществляется на основе TCP/IP Тип запускаемого приложения Запускается как приложение COM+ Запускается как приложение или сервис под Windows, daemon под Linux ------------------------------------------------------------------------------------------------------------------
Вторая важная новость — сервер “1С:8.1” будет также функционировать в среде Linux, на “родном” уровне, без режима эмуляции Win API. Для этого программный код полностью перекомпилирован под Linux, но основная его часть является единой для Windows и Linux (переписан только уровень взаимодействия с OC). В рамках одного кластера смогут одновременно функционировать Windows- и Linux- серверы (рис. 4). При этом аутентификация пользователей будет выполняться по протоколу Kerberos.
Рис. 4. Компьютеры, входящие в состав кластера “1С:Предприятия 8.1”, могут работать под управлением Windows или Linux. Допускается включение в состав одного кластера серверов, функционирующих под разными ОС
В то же время Linux-сервер не сможет работать с MS SQL Server (но реализация такой возможности прорабатывается) и COM-объектами. В то же время ему не требуется наличие ключа аппаратной защиты (HASP). Но поддержка Linux относится только к серверной части платформы, как подчеркивает "1С" — реализация клиентской части для Linux сейчас не планируется.
В "1С:Предприятие 8.1" в дополнение к MS SQL Server реализована поддержка СУБД PostgreSQL, которая может работать под управлением Windows или Linux. В среде Linux будет применяться СУБД PostgreSQL (она создается и поддерживается сообществом разработчиков PostgreSQL Global Development Group, www.postgreSQL.org) — системы с весьма либеральной лицензией, предусматривающей ее бесплатное применение и возможность внесения модификаций. Последним обстоятельством разработчики “1С” уже воспользовались, внеся изменения для устранения чувствительности к регистру букв при операциях сравнения строк. По оценкам специалистов “1С”, эта СУБД демонстрирует хороший уровень качества и не требует особых навыков для установки и администрирования.
В комплект поставки "1С:Предприятия 8.1." входит дистрибутив модифицированной версии PostgreSQL.
Несмотря на наличие ряда интеграционных механизмов, до сих пор платформа “1С” в общем-то больше напоминала довольно замкнутую, обращенную в себя систему. В 8.1 сделаны серьезные шаги по преодолению этого “наследства” и преобразования ее в систему, открытую для взаимодействия с разнородными внешними компонентами на принципах SOA.
Прежде всего, нужно отметить расширение поддержки Web-сервисов: информационная база 1С:8.1 сможет стать поставщиком Web-сервисов, а у прикладных решений появится возможность обращаться к любым внешним Web- сервисам. Публикация Web-сервисов можно выполнять через файловую систему и по протоколу FTP на Web-серверах. Это взаимодействие с Web-сервисами будет поддерживаться на уровне спецификаций WS-I Basic Pofile. В недалеком будущем планируется также использование протоколов WS-Security и SOAP with Attachments.
В целом с расширением поддержки XML связан и ряд других новшеств 1С:8.1. В частности, реализован ряд новых объектных моделей, среди которых можно выделить следующие:
Тут интересно отметить, что в новой версии платформы для работы с XML будут использоваться открытые библиотеки Apache Xerces и Apache Xalan.
Еще одной интересной новинкой является создание дополнительного слоя взаимодействия платформы со стандартными XML-технологиями (рис. 5) на базе собственной технология XDTO (XML Data Transfer Objects). С помощью XDTO можно выполнять описание типов параметров и возвращаемых значений Web- сервисов, обмениваться информацией между конфигурациями 1С:8.1 с существенно разными структурами данных, в том числе на основе схем XML, не привязанных к той или иной конфигурации (например, обмен с информационными системами, построенными не на основе 1С:Предприятия 8.1), а также создавать собственные системы типов и значений для обработки произвольных данных. В системе 1С:8.1 реализована также сериализация данных на основе механизма XDTO, которая предназначена для сохранения данных объекта в файл XML и создания объекта на основе данных, хранящихся в файле XML:
Рис. 5. Использование слоя XTDO (справа) упрощает программирование при работе с XML Schema (слева)
Одним из ключевых направлений развития платформы является также "борьба за параллельность работы системы и оптимизация ее механизмов. В 1С:8.1, помимо реализации кластера серверов, сделаны еще два важных изменения – реализованы новые варианты работы с управляемыми блокировками транзакций и разделения итогов регистров.
Управление блокировками в транзакции поддерживает теперь три режима:
Фактически, разработчики "1С" решились, наконец, отказаться от полной зависимости от механизма блокировок СУБД и предоставить возможность разработчику самому управлять блокировками в терминах предметной области. Дело в том, что при кажущейся простоте использования уровней repeatable read и serializable на практике было очень трудно предсказать, как поведет себя СУБД и обеспечить необходимую параллельность. И это не недостаток СУБД, а принципиальная невозможность хорошо определить область блокировки без учета прикладного смысла данных. С новым механизмом блокировки будут накладываться именно на то, что необходимо.
Однако нужно иметь в виду, что механизм управляемых блокировок сам по себе требует дополнительных ресурсов, то есть несколько замедляет работу системы. Так что эффект может быть получен только за счет распараллеливания обработки и оцениваться он должен оцениваться не на линейной скорости, а на суммарной пропускной способности при интенсивной работе пользователей. Очевидно и то, что повышение параллельности потребует доработок конфигураций, а значит будет больше зависеть от квалификации разработчиков прикладных решений. Если раньше им не надо было думать о том, что блокировать, то теперь придется в этом разбираться.
Но переход к новой модели реализован "опционально": по умолчанию конфигурации работают в "старом" стиле автоматических блокировок. Предусмотрен также "переходный" режим управления блокировками, позволяющий переводить конфигурации на новую модель по частям.
В 8.1 расширены границы использования регистров для работы с большим количеством измерений, прежде всего, это касается регистра бухгалтерии с количеством субконто больше четырех. Оптимизирован также целый ряд режимов работы системы. В результате, как говорят разработчики “1С”, уже сейчас достигнуто существенное ускорение запуска системы и снижение расхода памяти, что особенно важно для создания и внедрения больших прикладных решений.
В 1С:8.1 система компоновки данных реализована в виде принципиально нового механизма (рис. 6), основанного на декларативном описании и предназначенный для построения отчетов, а также вывода информации, имеющей сложную структуру. Отчет в конфигурации может быть описан декларативно, без написания кода на встроенном языке и создания форм. Система компоновки данных позволяет реализовать следующие возможности:
Рис. 6. Схема взаимодействия основных элементов системы компоновки данных
О планах развития платформы 8.0 фирма "1С" впервые полуофициально объявила на проходившей в конце февраля в Москве партнерской конференции. Тогда же было сказано, что модернизация будет проходить в два этапа, в виде реализации ближних и дальних планов создания "1С:Предприятия 8.1". Судя по представленной тогда информации нынешний вариант бета-версии – это выполнение "ближних" задумок.
На следующем этапе развития системы (о сроках которого "1С" пока ничего не говорит) речь идет о внешне довольно простых вещах, за которыми на самом деле стоит очень серьезная внутренняя модернизация, открывающая большие перспективы для развития платформы. Тут важно то, что данные изменения непосредственно затронут прикладные решения (в отличие от уже сделанного в 8.1).
В первую очередь это будет создание новой технологической модели пользовательского интерфейса на основе к декларативному описанию визуальных объектов без использования программирования. Такой подход в целом вполне согласуется с общими тенденциями в области разработки современного ПО -- в качестве примера скажем о презентационной технологической слое Windows Presentation Foundation (Avalon) в Windows Vista/Longhorn. Впрочем, первые шаги в этом направлении "1С" уже сделала в 8.1 в виде нового механизма построения отчетов. В будущем серьезные изменения произойдут в глобальном пользовательском командном интерфейсе. Помимо решения задач по упрощению поддержки прикладных решений и внедрения больших комплексных систем это позволит создавать клиентские приложения для разных операционных платформ.
Вторая группа новшеств данного этапа связана с перераспределением функций между серверной и клиентской частью платформы. До настоящего времени "1С" ориентировалась в целом на идеологию “толстого” клиента — на него возлагались основные задачи управления пользовательским интерфейсом и бизнес-логикой. В будущем эти функции должны перейти к серверу "1С:Предприятия", что позволит реализовать подход тонкого клиента и "легких" приложений (только управление пользовательским интерфейсом). В целом преимущества такого подхода очевидны (рис. 7): повышение масштабируемости, упрощение реализации распределенных неоднородных систем. В выступлениях в феврале представителей “1С” было также сказано о создании нового Web-клиента с использованием JavaScript и DHTML (возможно, речь идет об использовании подхода AJAX, см. "AJAX – это интересно и очень перспективно", BYTE 07/2006).
Рис. 7. Архитектура тонкого клиента
Эволюционно-революционный переход
Комментируя еще полгода назад планы выпуска новой версии платформы, директор "1С" Борис Нуралиев сделал особый акцент на то, что переход на нее будет носить сугубо эволюционный, поэтапный характер, инвестиции, сделанные партнерами в освоение и заказчиками во внедрение ПО версии 8.0, сохранятся в максимальной степени. Развитие приложений на основе текущей версии платформы будет продолжаться. Что же касается более ранних продуктов, то фирма “1С” в настоящее время продолжает не только продавать решения 7.7, но также и обеспечивать техническую поддержку более ранних версий “1С:Бухгалтерии”, в том числе и для DOS.
В момент выпуска 1С:8.1 (июль 2006 г.) было сказано, что появление финальной версии 8.1 планируется на октябрь -- ноябрь текущего года. В заявлении “1С” говорится, что в ней могут появиться еще некоторые новые механизмы, но основная работы сейчас будет сводиться к оптимизации работы системы. Стоит также подчеркнуть еще раз, что разработчики намерены обеспечить практически полную совместимость с прикладными решениями 8.0.
Характеризуя в целом развитие платформы "1С:Предприятия", нужно отметить, что речь сегодня идет не только о повышении ее масштабируемости и производительности. На примере 8.1 мы видим появление еще одного вектора – поддержку многоплатформенности и широкое применение отраслевых базовых технологий Open Source. Помимо решения задач развития бизнеса собственно "1С", такая тенденция может оказать заметное влияние на ситуацию на софтверном отечественном рынке в целом (см. по этому поводу "1С", Microsoft, Linux и т. д.", PC Week/RE № 10/2006, с. 39, ).
ВРЕЗКА 1. Тестирование "1С:УПП" на масштабируемость
Повышение производительности и масштабирования – это одно из ключевых направления развития ПО "1С:Предприятие". Исследование именно этих характеристик "1С:Предприятия 8.0" на примере решения "Управление торговлей" было проведено фирмой "1С" еще в конце 2003 года (см. PC Week/RE № 09/2004, с. 44). Его задачей было показать преимущества архитектуры новой платформы по сравнению с ее предыдущей версией 7.7 в условиях повышения объемов запросов на обработку документов и формирования запросов.
Нынешней весной "1С" представила результаты нового тестирования, выполненного применительно к своему флагманскому продукту "1С:Управление производственным предприятием" (1С:УПП). На этот раз цель была гораздо скромнее – подтвердить возможности масштабируемости многофункционального решения 1С:УПП при одновременной работе большого количества пользователей.
Исследование выполнялось на примере операций, наиболее критичных с точки зрения нагрузки на вычислительную систему, и при параметрах, типичных для большинства организаций заказчиков. Использовался клиент-серверный вариант 1С:УПП, при этом сервера "1С:Предприятия" и базы данных были установлены на разных компьютерах. Работа пользователей (от 1 до 150) – запись и проведение документа эмулировалась программным образом, при этом автомат между вводом документов делал паузу 60 секунд. Но, несмотря на это, интенсивность ввода информации все равно была в несколько раз выше по сравнению с реальными условиями.
Тестирование проводилось для документов различного объема – 5, 20 и 40 строк, а также двух разных степеней конкурентности номенклатуры во водимых данных: когда наборы товаров у тестовых пользователей вообще не пересекаются и когда они совпадают в каждом четвертом случае.
Анализ представленных результатов исследования позволяет сделать следующие основные выводы:
В заключении отметим, что любые тесты нельзя воспринимать, как истину в последней инстанции, и их результаты требуют критического осмысления. Для всесторонней оценки возможностей системы необходимо изучать реальный опыт эксплуатации решений, в том числе в экстремальных условиях.
Рис. 8. Количество строк, обработанных за час системой "1С:УПП"
Рис. 9. Среднее время записи и проведения одного документа
ВРЕЗКА 2. Приглядитесь к PostgreSQL
Несмотря на то, что позиции тройки лидеров на рынке СУБД -- Oracle, IBM и Microsoft – кажутся совершенно непоколебимыми, на самом деле они все в большей степени ощущают давление со стороны конкурентов из стана Open Source, прежде всего в лице MySQL (www.mysql.com) и PostqreSQL (www.postqre.com). Вот самый характерный признак этого: все три ИТ-гиганта предлагают сегодня в том или ином виде бесплатные варианты своих БД (издания типа Express)– это было даже невозможно себе представить еще несколько лет назад!
Оба проекта – MySQL и PostgreSQL – развиваются и поддерживаются независимыми фондами (сообществами разработчиков ПО) на принципах Open Source. Первый из них довольно хорошо известен в России, а вот о втором пока знают немногие. Но к PostgreSQL стоит присмотреться повнимательнее, тем более, что именно эту СУБД решила использовать фирма "1С" в новой версии платформы "1С:Предприятие 8.1" в качестве бесплатной альтернативы MS SQL Server. Вот что можно сказать в пользу этого "новичка" на российском ИТ-рынке.
Ранее PostgreSQL была ориентирована на операционных систем Unix, но потом в ней появилась и поддержка Novell NetWare и OS/2. Последняя версия PostgreSQL 8.0 может работать почти со всеми ведущими OC, в том числе и с Windows. Еще можно установить на рабочую станцию или ноутбук с помощью мастера инсталляции также просто как, например, Microsoft Word.
Многих пользователей коммерческих СУБД смущает тот факт, что бесплатные системы не имеют профессиональных инструментов разработки и администрирования. Эти представления явно устарели. Конечно, PostgreSQL, как и многие другие Unix-продукты, всегда имела развитую систему управления в режиме командной строки. Но сейчас в дополнение к ней можно применять и набор графических средств для управления и проектирования БД, в том числе Visual Case, Data Architect, pgAdmin III и Navicat PostgreSQL. Для управления отчетами имеется возможность подключения Crystal Reports, Cognos ReportNet, а также некоторых инструментов Open Source, в частности, JasperReports. Программный интерфейс PostgreSQL поддерживает работу с широким кругом языков программирования: C++, C#, JDBC, Perl, PHP, Python, Ruby и Tcl. Можно применять также такие редкие сегодня языки как Ada, Common.Lips и Pascal.
Многие предубеждения против средств Open Source связаны с их технической поддержкой. Если эти продукты бесплатные, то кто же будет отвечать на вопросы пользователей? На самом деле документация по PostgreSQL включает почти 1450 страниц в формате PDF или в онлайновом варианте. Там содержатся ответы почти на все вопросы клиентов. Если же вам нужно обсудить какие-то специальные темы, то можно обратиться на онлайновые новостные форумы, поддерживаемые Google. Есть также возможность применения средств IRC для обсуждения проблем в режиме реального времени. Для те же, кому нужно гарантированная поддержка могут обратиться к платным услугам, предлагаемым рядом компаний, например, Pervasive Software или SpikeSource.
PostgreSQL полностью соответствует стандартам SQL и даже поддерживает некоторые его расширения. Например, при работе с приложениями, ориентированными на Oracle, можно использовать EnterpriseDB (версия PostgreSQL), которая дополненная различными функциями, специфичными для Oracle. И все это – бесплатно!